package com.sxbbc.common.core.entity.jz;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 商品信息主表
 * </p>
 *
 * @author leehao
 * @since 2019-05-24
 */
@Data
public class ProcMain implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 商家id，没有值表示平台产品
     */
    private Integer bid;

    /**
     * 产品编号 唯一
     */
    private String proCode;

    /**
     * 商品名称
     */
    private String proName;

    /**
     * 商品单位
     */
    private String proUnit;

    /**
     * 按重量计价时，每个数量1表示多少重量单位
     */
    private BigDecimal weightUnit;

    /**
     * 计价方式 1按数量 2按重量
     */
    private Integer valuationType;

    /**
     * 商品描述
     */
    private String proDesc;

    /**
     * 产品主图
     */
    private String proUrl;

    /**
     * 产品视频url
     */
    private String proVideoUrl;

    /**
     * 图片逗号分隔字符串
     */
    private String proImgs;

    /**
     * 关键词
     */
    private String keyWords;

    /**
     * 排序 值越大越靠前
     */
    private Integer sort;

    /**
     * 单价，如果存在规格默认第一组规格
     */
    private BigDecimal price;

    /**
     * 库存数量，累积规格库存或者自己定义
     */
    private Integer qty;

    /**
     * 开启虚拟已售  0未开启 1已开启
     */
    private Integer isInvented;

    /**
     * 虚拟已售数量
     */
    private Integer inventedNum;

    /**
     * 产品类型见枚举类OrderTypeEnums 与订单枚举一致
     */
    private Integer proType;

    /**
     * 产品状态 1已上架  2已下架  3已删除
     */
    private Integer status;

    /**
     * 最后上架时间
     */
    private Date lastShelfTime;

    private Date createTime;

    /**
     * 平台1级规格id
     */
    private Integer mainClassifyFirstId;

    /**
     * 平台2级分类id
     */
    private Integer mainClassifySecondId;

    /**
     * 平台3级分类id
     */
    private Integer mainClassifyThirdId;

    /**
     * 商家1级分类
     */
    private Integer shopClassifyFirstId;

    /**
     * 商家2级分类
     */
    private Integer shopClassifySecondId;

    /**
     * 商家3级分类
     */
    private Integer shopClassifyThridId;

    /**
     * 运费模板id 0表示免邮
     */
    private Integer expId;

    /**
     * 是否提供发票  0不提供 1提供
     */
    private Integer isInvoice;

    /**
     * 是否允许退款  0不允许  1允许
     */
    private Integer isRefund;

    /**
     * 审核状态 0未审核 1已审核
     */
    private Integer examineStatus;

    /**
     * 商品标签 类似团购，秒杀，优惠
     */
    private String label;

    /**
     * 商品权益，逗号分隔
     */
    private String interest;

    /**
     * 商品参加活动标记,单个活动的值,见ActivitySignEnums
     */
    private String activitySign;

    /**
     * 产地 省份ID
     */
    private Integer producePro;

    /**
     * 产地 城市ID
     */
    private Integer produceCity;

    /**
     * 对应升级商品的等级ID，见customer_level_info
     */
    private Integer levelId;

    /**
     * 封面图 非1:1比例
     */
    private String coverUrl;

    /**
     * 已售
     */
    @TableField(exist = false)
    private Integer saleQty;

    /**
     * 积分
     */
    private BigDecimal point;

    /**
     * 活动角标名称
     */
    @TableField(exist = false)
    private String proActivity;


    /**
     * 用户id
     */
    @TableField(exist = false)
    private Integer cid;

    /**
     * 商品类型名称
     */
    @TableField(exist = false)
    private String proTypeName;

    /**
     * 商品sku
     */
    @TableField(exist = false)
    private List<ProSkuDetail> proSkuList;

    /**
     * 运费名称 页面显示
     */
    @TableField(exist = false)
    private String expName;

    /**
     * 类型名称 如自营 三方
     */
    @TableField(exist = false)
    private String bTypeName;

    @TableField(exist = false)
    private Integer bType;

    /**
     * 商家名称
     */
    @TableField(exist = false)
    private String businessName;


    /**
     * 如果是单规格产品，则直接返回该Id，为空则表示是多规格产品
     */
    @TableField(exist = false)
    private Integer skuId;


}
